There are two configuration methods, depending on the PCI chipsets used: Configuration Type 1: CF8h D(R/W): bit 0-7 Index into the configuration space to read/write at CFCh 11-15 Card ID (0 - 31) 16-19 PCI Bus ID (0 - 15) 31 Set to enable the PCI bus configuration space CFCh D(R/W): bit 0-31 The index register identified by the PCI bus/card ID/Index in CF8h can be accessed here. Configuration Type 2: CF8h (R/W): bit 7 Set to select the PCI configuration space CFAh (R/W): bit 0-? Bus select ? Finding the PCI devices: PCItype:=0; outp($CF8,0); outp($CFA,0); if (inp($CF8)=0) and (inp($CFA)=0) then PCItype:=2 else begin tmp=inpl($CF8); outpl($CF8,$80000000); if inpl($CF8)=$80000000 then PCItype:=1; outpl($CF8,tmp); end; case PCItype of 1:begin {PCI type 1} for i:=0 to 511 do begin outpl($CF8,$80000000+i*longint(2048)); tmp:=inpl($CFC); if ((tmp and $FFFF)<>$FFFF) and ((tmp shr 16)<>$FFFF) then _PCI Device: Vendor: (l and $FFFF) Device: (l shr 16)_ end; end; 2:begin {PCI type 2} outp($CF8,$80); outp($CFA,0); {Bus select?} for i:=0 to 15 do begin tmp:=inpl(i*256 +$C000); if ((tmp and $FFFF)<>$FFFF) and ((tmp shr 16)<>$FFFF) then _PCI Device: Vendor: (l and $FFFF) Device: (l shr 16)_ end; outp($CF8,0); end; end;